1. 题目描述
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
1 | 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) |
2. 题解
2.1. 思路
竖式加法。左边是低位,右边是高位1
2
3
4 (2 -> 4 -> 3)
+ (5 -> 6 -> 4)
-----------------
= (7 -> 0 -> 8)
假设m和n分别代表两个链表的长度
时间复杂度:O(max{m, n}),因为长的链表遍历完就结束
空间复杂度:O(max{m, n}),因为新链表长度取决于长链表
2.2. Java实现
1 | /** |